package com.ujiuye.servlet;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ujiuye.pojo.Student;
import com.ujiuye.service.StudentService;
import com.ujiuye.utils.PageTools;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;

/**
 * 1、web项目  tomcat
 * 2、导包   put
 * 3、导入c3p0  放在src下面    改下库名
 * 4、创建对应的包和实体类
 * 5、配置跨域的过滤器
 *
 *
 * 6、后台的处理
 *      接收当前页和每页显示的条数
 *      处理 当前页和每页显示的条数
 *      查询学生表的总条数
 *      写好分页工具类
 *      封装分页工具类
 *      通过分页工具类去查询当前页的学生信息
 *
 *      因为要把分页工具类和学生信息都要返回回去
 *          在分页工具类新增一个属性  用来存储学生信息
 *      把分页工具类转成json
 *      把json 写回去
 *
 */


@WebServlet("/student01Servlet")
public class Student01Servlet extends BaseServlet {
    private StudentService studentService = new StudentService();
    /**
     * 分页查询
     * @param req
     * @param resp
     */
    public void dimQuery(HttpServletRequest req, HttpServletResponse resp) throws IOException {

        //接收当前页和每页显示的条数
        String currentPage = req.getParameter("currentPage");
        String pageSize = req.getParameter("pageSize");

        //处理当前页  没有传递默认是1
        int cp;
        if(currentPage == null || "".equals(currentPage)) {
           cp = 1;
        }else {
            cp = Integer.parseInt(currentPage);
        }

        //处理每页显示的条数   没有传递 是3
        int ps;
        if(pageSize == null || "".equals(pageSize)) {
            ps = 3;
        }else {
            ps = Integer.parseInt(pageSize);
        }

        //总条数  查询数据库
        int sumSize = studentService.queryAllSize();

        //封装分页工具类
        PageTools pt = new PageTools(cp,ps,sumSize);

        //调用service查询数据库
        List<Student> lists = studentService.dimQueryStudent(pt);

        // 要把分页工具类和 lists集合都返回回去
        //将lists集合放到pt工具类中
        pt.setStudentList(lists);

        //转json
        String json = new ObjectMapper().writeValueAsString(pt);
        resp.getWriter().print(json);


    }

    //分页模糊
    public void dimQueryStudent(HttpServletRequest req,HttpServletResponse resp) throws IOException {
        //接收参数
        String pageSize = req.getParameter("pageSize");
        String currentPage = req.getParameter("currentPage");
        String sname = req.getParameter("sname");

        //调用service的方法
        PageTools pt = studentService.dimQueryStudentByPage(pageSize,currentPage,sname);

        //把pt转成json
        String json = new ObjectMapper().writeValueAsString(pt);
        resp.getWriter().print(json);


    }


    //注册
    public void studentRegist(HttpServletRequest req,HttpServletResponse resp) {
        Map<String, String[]> map = req.getParameterMap();
        Set<String> set = map.keySet();
        for (String s : set) {
            System.out.println(s + "..." + Arrays.toString(map.get(s)));
        }
    }
}
